import random

from base.object.human import Human

#类名：通常首字母大写（如 Socket、HttpRequest），遵循驼峰式。
class Man(Human):


    #类的私有方法
    def __init__(self, name, age):
        super().__init__(name, age)
        #男人都喜欢
        #双下划线的表示的是私有类型(private)的变量
        self.__like_porn_film = True

    def __show_porn_film(self):
        print(["91porn.com","色情五月天"])
    def show_porn_film(self):
        self.__show_porn_film()

    def play_hand_job(self):
        v = random.random()
        if v<=0.9:
            print(f"我{self.name}喜欢 打飞机")
        else:
            print(f"我{self.name} 不承认打飞机")

    # 重写函数
    # def hello(self):
    #     print(f"hello i  am MAN,my name is:{self.name},age is: {self.age}")




if __name__ == '__main__':
    dxp=Man("dxp",80)
    dxp.hello()
    #判断类是否是另一个类的子类
    print(issubclass(dxp.__class__,Human))
    dxp.play_hand_job()
    dxp.show_porn_film()
    # 实例不能访问私有变量
    # print(dxp.__like_porn_film)

    #仍然可以修改属性直接操作，对象的属性字典（__dict__）
    setattr(dxp, "__like_porn_film", False)

    print(dxp.__dict__)

    # 可以使用 object._className__attrName（ 对象名._类名__私有属性名 ）访问属性
    # _foo: 以单下划线开头的表示的是 protected 类型的变量
    print(dxp._Man__like_porn_film)